﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace Sega_Dama_3D
{
    public class Objeto2D
    {
        //Variáveis
        public Texture2D textura;
        public Vector2 posicao, velocidade, vetorDeOrigem;
        public Color cor;
        public bool visible;
        public float gravidade, rotacao, escala, alpha;

        public Rectangle collisionBounds;

        //Função Construtora
        public Objeto2D(Texture2D textura)
        {
            this.textura = textura;
            this.posicao = new Vector2(0, 0);
            this.velocidade = new Vector2(0, 0);
            this.cor = Color.White;
            this.visible = true;
            this.gravidade = 0.2f;
            this.rotacao = 0;
            this.escala = 1;  // faz o objeto crescer
            this.vetorDeOrigem = new Vector2(textura.Width/2, textura.Height/2);
            
            this.alpha = 1;  // deixa transparente
        }



        public Boolean hitTestObject(Objeto2D objeto)
        {
            this.CalcularRetangulo();
            objeto.CalcularRetangulo();

            if (this.collisionBounds.Intersects(objeto.collisionBounds))
            {
                return true;
            }
            else
            {
                return false;
            }

        }

        public void CalcularRetangulo()
        {
            collisionBounds = new Rectangle(
                (int)(posicao.X - (textura.Width / 2) * escala),
                (int)(posicao.Y - (textura.Height / 2) * escala),
                (int)(textura.Width * escala),
                (int)(textura.Height * escala)
                );
        }


        public virtual void Draw(SpriteBatch spriteBatch)
        {
            if (visible == true)
            {
                spriteBatch.Draw(textura, posicao, null, cor * alpha, MathHelper.ToRadians(rotacao), vetorDeOrigem, escala, SpriteEffects.None, 0.5f);
            }


        }


    }
}
